home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 029 (1987-08-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 029 (1987-08-15)(Ossowski, Stefan)(DE)(PD).adf / ue18 / Config! < prev    next >
Text File  |  1978-08-10  |  46KB  |  1,200 lines

  1. -----------------------------------------------------------------------------
  2. |                           Config!  V1.8                                   |
  3. |        Copyright (C) 1986-87 Rick Stiles.  All rights reserved.           |
  4. |              2420 Summit Springs Drive, Atlanta GA, 30338                 |
  5. -----------------------------------------------------------------------------
  6.  
  7. Config! defines Uedit's start-up settings and commands.  Copy Config!, Data!,
  8. and Help! to S: so that Uedit can find them.
  9.  
  10. If you edit Config! and want to make a new Data! file, type "Run UE -c" in
  11. CLI.  (Or you can rename S:Data! or delete it, and Uedit will be forced to
  12. compile Config! next time.)
  13.  
  14. If you create a new config such as "NewConfig", you can make Uedit compile it
  15. by typing "UE -cNewConfig" in CLI.  On the "Save new Data?" question,
  16. selecting Yes will replace S:Data!.  Selecting No will preserve the old
  17. S:Data!.  Once inside Uedit, you can select "Save config" and save it under a
  18. new name like "NewData".
  19.  
  20. To make Uedit use NewData next time, type "UE -dNewData" in CLI.  To make it
  21. your standard data file, rename it to S:Data!.
  22.  
  23.  
  24. ******************************************************************************
  25. *                                                                            *
  26. *  DO NOT share or distribute a modified version of Uedit.arc!  Change these *
  27. *    commands as you wish, but leave the ORIGINAL Uedit.arc untouched!       *
  28. *                                                                            *
  29. ******************************************************************************
  30.  
  31. Edit the numbers at the left, but leave the angle-brackets as they are:
  32.  
  33. <0>        auto-backup mode:    0 = no, 1 = yes
  34. <1>        word-wrap mode:      0 = no, 1 = yes
  35. <0>        right-justify mode:  0 = no, 1 = yes
  36. <77>       maximum line-length: 10 thru 999
  37. <66>       lines per page:      1 thru 999
  38. <0>        over-strike mode:    0 = no, 1 = yes
  39. <1>        auto-indent mode:    0 = no, 1 = yes
  40. <0>        print selection:     0 = parallel port, 1 = Preferences
  41. <0>        search sensitive to upper/lower case:  0 = no, 1 = yes
  42. <?>        search-string wildcard (1 character)
  43. <$>        search string "either-or" delimiter (1 character)
  44. <4>        tab spacing:  1-40
  45. <10>       end-of-line character: 10  =  Newline, 13 = Return or Enter
  46.  
  47.            These are for the speech synthesizer:
  48.  
  49. <n>        "n" = natural,"f" = female,"m" = male,"r" = robotic
  50. <120>      speech pitch: 65-320
  51. <200>      speech speed: 40-400
  52. <0>        speak alert messages:     0 = no, 1 = yes
  53. <0>        speak ordinary messages:  0 = no, 1 = yes
  54.  
  55. ===========================================================================
  56.  
  57. Everything from here onward is menu selections or commands.
  58.  
  59. Be sure and keep a backup copy of the original Config!, if you change this
  60. file!
  61.  
  62. (( NOTE:
  63.    The first 5 entries below are Menu Titles.  Their key argument is not used.
  64.    Menu Titles can have up to 10 characters.
  65.    The rest of the menu() entries are selections belonging to the 5 Menu
  66.    Titles.
  67.    Menu selection descriptions can have up to 17 characters.
  68. ))
  69.  
  70. <startup:
  71.    menu("Files",1,normal-f1)
  72.    menu("Buffers",2,normal-f1)
  73.    menu("Commands",3,normal-f1)
  74.    menu("Settings",4,normal-f1)
  75.    menu("Edits",5,normal-f1)
  76.  
  77.    menu("Next file      f1",1,normal-f1)
  78.    menu("Next fav't   S-f1",1,shft-f1)
  79.    menu("Open         A-f1",1,alt-f1)
  80.    menu("New file     C-f1",1,ctl-f1)
  81.    menu("Insert      SA-f1",1,shftAlt-f1)
  82.    menu("Restore     SC-f1",1,shftCtl-f1)
  83.    menu("Rename        A-n",1,alt-n)
  84.    menu("AmigaDOS      C-y",1,ctl-y)
  85.    menu("DOS + result  C-z",1,ctl-z)
  86.    menu("Directory     A-z",1,alt-z)
  87.    menu("Save           f2",1,normal-f2)
  88.    menu("Save as...   S-f2",1,shft-f2)
  89.    menu("Save changes A-f2",1,alt-f2)
  90.    menu("Close          f3",1,normal-f3)
  91.    menu("Auto-close   S-f3",1,shft-f3)
  92.    menu("Quit           f4",1,normal-f4)
  93.    menu("Auto-Quit    S-f4",1,shft-f4)
  94.    menu("About...         ",1,shftAltCtl-a)
  95.  
  96.    menu("Search fwd     f9",2,normal-f9)
  97.    menu("Search bkwd  S-f9",2,shft-f9)
  98.    menu("Replace fwd   f10",2,normal-f10)
  99.    menu("Rpl all fwd A-f10",2,alt-f10)
  100.    menu("Rpl bkwd    S-f10",2,shft-f10)
  101.    menu("Set search     f7",2,normal-f7)
  102.    menu("Set replace    f8",2,normal-f8)
  103.    menu("Search caps   C-8",2,ctl-8)
  104.    menu("Set wildcard A-f7",2,alt-f7)
  105.    menu("Set eitherOr C-f7",2,ctl-f7)
  106.    menu("Tab->space SC-tab",2,shftCtl-tab)
  107.    menu("Space->tab SA-tab",2,shftAlt-tab)
  108.    menu("Speak hilite  A-s",2,alt-s)
  109.    menu("Print hilite  C-p",2,ctl-p)
  110.    menu("Free buffers A-f3",2,alt-f3)
  111.    menu("Edit buffer SA-f6",2,shftAlt-f6)
  112.    menu("Swap buffer   C-w",2,ctl-w)
  113.    menu("See buffers SC-f6",2,shftCtl-f6)
  114.    menu("Show flags S-help",2,shft-help)
  115.  
  116.    menu("Compile        f6",3,normal-f6)
  117.    menu("Make command S-f6",3,shft-f6)
  118.    menu("Save config  A-f6",3,alt-f6)
  119.    menu("Load config  C-f6",3,ctl-f6)
  120.    menu("Swap keys   AC-f6",3,altCtl-f6)
  121.    menu("Kill key   SAC-f6",3,shftAltCtl-f6)
  122.    menu("Start learn   C-s",3,ctl-s)
  123.    menu("Run learn     C-r",3,ctl-r)
  124.    menu("Command mult  C-m",3,ctl-m)
  125.    menu("Save learn    C-5",3,ctl-5)
  126.    menu("Load learn    C-6",3,ctl-6)
  127.    menu("Run learn #   C-7",3,ctl-7)
  128.  
  129.    menu("Favorite       f5",4,normal-f5)
  130.    menu("Colors     A-help",4,alt-help)
  131.    menu("OverStrike   S-f5",4,shft-f5)
  132.    menu("AutoIndent   A-f5",4,alt-f5)
  133.    menu("WordWrap     C-f5",4,ctl-f5)
  134.    menu("Right justify A-j",4,alt-j)
  135.    menu("Tab space SAC-tab",4,shftAltCtl-tab)
  136.    menu("Line length C-rtn",4,ctl-return)
  137.    menu("Lines/page    A-g",4,alt-g)
  138.    menu("End of line   C-e",4,ctl-e)
  139.    menu("Read-only   SA-f5",4,shftAlt-f5)
  140.    menu("AutoBackup SAC-f5",4,shftAltCtl-f5)
  141.    menu("Row/Column    C-2",4,ctl-2)
  142.    menu("Mark gadgets  C-g",4,ctl-g)
  143.    menu("Print Pref    A-p",4,alt-p)
  144.    menu("Invisibles    C-v",4,ctl-v)
  145.    menu("Busies        C-b",4,ctl-b)
  146.    menu("Speak msgs  SC-f5",4,shftCtl-f5)
  147.    menu("Spk alerts  AC-f5",4,altCtl-f5)
  148.    menu("Use keys      A-u",4,alt-u)
  149.  
  150.    menu("Refresh    C-help",5,ctl-help)
  151.    menu("Copy          kp.",5,normal-kpDot)
  152.    menu("Cut           kp-",5,normal-kpMinus)
  153.    menu("Paste     kpEnter",5,normal-kpEnter)
  154.    menu("Clear         C-h",5,ctl-h)
  155.    menu("Unhilite      A-h",5,alt-h)
  156.    menu("I-Copy      C-kp.",5,ctl-kpDot)
  157.    menu("I-Cut       C-kp-",5,ctl-kpMinus)
  158.    menu("I-Paste C-kpEnter",5,ctl-kpEnter)
  159.    menu("I-Clear       C-i",5,ctl-i)
  160.    menu("Uninvert      A-i",5,alt-i)
  161.    menu("Reformat      C-3",5,ctl-3)
  162.    menu("Del white-spc C-4",5,ctl-4)
  163.    menu("File size     C-1",5,ctl-1)
  164.  
  165.    runKey(shftAltCtl-z)
  166.  
  167. >
  168.  
  169. NOTE:  shftAltCtl-z is executed automatically at startup.  Normally no
  170. command exists for it.  During an edit session you can create and save one,
  171. however, and it will be executed each time you start Uedit.
  172.  
  173. Press HELP if you want to see how to set up shftAltCtl-z  to  auto-load  your
  174. files.
  175.  
  176. ---------------------------------------------------------------------------
  177. Here is a description of how buffers are used in this file.  If you make
  178. changes which involve buffers, you should follow the convention in this list:
  179. (You can change this convention entirely, of course.)
  180.  
  181. buf50-54 = used for temporary purposes in commands
  182. buf49 = search string
  183. buf48 = replace string
  184. buf47 = copied hilite
  185. buf46 = copied invert
  186. buf45 = holds scratch deletes for Undo, keypad-0
  187. buf44 = make-command buffer
  188. buf43 = document names
  189. buf42 = holds Help, if loaded
  190. buf41 = used in buffer swapping command, ctl-w
  191. buf40 = used for AmigaDOS commands
  192. buf39 = used for result of AmigaDOS commands (if result selected)
  193. buf38 = most recent directory name, if "Directory" has been selected
  194.  
  195. ---------------------------------------------------------------------------
  196.  
  197. <normal-help:  if (not isEmpty(buf42)) { toggle(curFile) freeBuf(buf42) }
  198.                else {
  199.                   if (insertFile(buf42,sFile,"S:Help!")) {
  200.                                editBuf(buf42)
  201.                                flipFlag(buf42,readOnly)
  202.                                flipFlag(buf42,changed)
  203.                   } else putMsg("Couldn't find S:Help! file.")
  204.                } >
  205. <shft-help:    showFlags >
  206. <alt-help:     toggle(color) >
  207. <ctl-help:     refreshDisplay >
  208.  
  209. NOTE:  There can be shft-closeBox, alt-closeBox, etc, commands also.
  210. <normal-closeBox:   runKey(normal-f4) >  execute graceful quit key
  211.  
  212. <normal-gadget1:  vScroll(sPage) >
  213. <normal-gadget2:  vScroll(ePage) >
  214. <normal-gadget3:  toggle(favorite) >
  215. <normal-gadget4:  toggle(curFile) >
  216.  
  217. <normal-upArrow:     vScroll(upLine) >
  218. <normal-downArrow:   vScroll(downLine) >
  219. <normal-leftArrow:   hScroll(eChar) >
  220. <normal-rightArrow:  hScroll(sChar) >
  221.  
  222. <shft-upArrow:       do (n54,1,11) vScroll(upLine) >
  223. <shft-downArrow:     do (n54,1,11) vScroll(downLine) >
  224. <shft-leftArrow:     do (n54,1,10) hScroll(eChar) >
  225. <shft-rightArrow:    do (n54,1,10) hScroll(sChar) >
  226.  
  227. <alt-upArrow:        vScroll(sPage) >
  228. <alt-downArrow:      vScroll(ePage) >
  229. <alt-leftArrow:      do (n54,1,20) hScroll(eChar) >
  230. <alt-rightArrow:     do (n54,1,20) hScroll(sChar) >
  231.  
  232. <ctl-upArrow:        vScroll(sFile) >
  233. <ctl-downArrow:      vScroll(eFile) >
  234. <ctl-leftArrow:      equateNum(n54,lineLength)
  235.                      do (n53,1,n54) hScroll(eChar) >
  236. <ctl-rightArrow:     while (hScroll(sChar)) nothing >
  237.  
  238. place cursor
  239. <normal-buttonDown:  moveCursor(curFile,mouseLoc) >
  240. set start of hilite
  241. <shft-buttonDown:    equateLoc(curFile,sHilite,mouseLoc) refreshDisplay >
  242. set end of hilite
  243. <alt-buttonDown:     equateLoc(curFile,eHilite,mouseLoc) refreshDisplay >
  244. load filename that is clicked
  245. <ctl-buttonDown:
  246.    equateLoc(curFile,atCursor,mouseLoc)
  247.    if (not is(curFile,whiteSpace)) {
  248.        while (not is(curFile,whiteSpace))
  249.            { moveCursor(curFile,sChar) if (is(curFile,sFile)) goto label(1) }
  250.        label(1)
  251.        while (is(curFile,whiteSpace)) moveCursor(curFile,eChar)
  252.        equateLoc(curFile,sInvert,atCursor)
  253.        while (not is(curFile,whiteSpace)) moveCursor(curFile,eChar)
  254.        equateLoc(curFile,eInvert,atCursor)
  255.        refreshDisplay
  256.        freeBuf(buf54)
  257.        insertRgn(buf54,sFile,buf38,all)
  258.        insertRgn(buf54,eFile,curFile,invert)
  259.        loadFile(buf54)
  260.    } >
  261. Click or drag mouse, put word/phrase into index in buf41.  (Ctl-w to see.)
  262. <shftAlt-buttonDown:
  263.    equateLoc(curFile,atCursor,mouseLoc)
  264.    moveCursor(curFile,eWord)
  265.    equateLoc(curFile,eInvert,atCursor)
  266.    moveCursor(curFile,sWord)
  267.    equateLoc(curFile,sInvert,atCursor) >
  268.  
  269. ((See shftAlt-buttonDown and shftAlt-i.))
  270. <shftAlt-buttonUp:
  271.    equateLoc(curFile,atCursor,mouseLoc)
  272.    moveCursor(curFile,eWord)
  273.    equateLoc(curFile,eInvert,atCursor)
  274.    if (geLoc(curFile,sInvert,eInvert)) returnFalse
  275.    moveCursor(curFile,sInvert)
  276.    if (is(curFile,upperCase)) equateNum(n0,1)
  277.    else equateNum(n0,0)
  278.    toLower(curFile)
  279.    copyChar(curFile,n54)
  280.    if (eqNum(n0,1)) toUpper(curFile)
  281.    if (isEmpty(buf41)) insertChar(buf41,eLine)
  282.    moveCursor(buf41,sFile)
  283.    equateLoc(buf41,sPage,atCursor)
  284.    label(1)
  285.    if (is(buf41,upperCase)) equateNum(n0,1)
  286.    else equateNum(n0,0)
  287.    toLower(buf41)
  288.    copyChar(buf41,n53)
  289.    if (eqNum(n0,1)) toUpper(buf41)
  290.    if (gtNum(n54,n53)) {
  291.        moveCursor(buf41,downLine)
  292.        if (not is(buf41,eFile)) goto label(1)
  293.    }
  294.    insertRgn(buf41,atCursor,curFile,invert)
  295.    insertChar(buf41,eLine)
  296. >
  297.  
  298. set start of invert
  299. <shftCtl-buttonDown: equateLoc(curFile,sInvert,mouseLoc) refreshDisplay >
  300. set end of invert
  301. <altCtl-buttonDown:  equateLoc(curFile,eInvert,mouseLoc) refreshDisplay >
  302. drag mouse and create hilite
  303. <shftAltCtl-buttonDown:
  304.    equateLoc(curFile,locA,mouseLoc)
  305.    while (trackMouse) nothing
  306.    if (gtLoc(curFile,locA,mouseLoc))
  307.        { equateLoc(curFile,sHilite,mouseLoc) equateLoc(curFile,eHilite,locA) }
  308.    else
  309.        { equateLoc(curFile,eHilite,mouseLoc) equateLoc(curFile,sHilite,locA) }
  310.    refreshDisplay >
  311.  
  312. switch to next file
  313. <normal-f1:    toggle(curFile) >
  314. switch to next favorite
  315. <shft-f1:      toggle(favorite) >
  316. <alt-f1:       putMsg("Input new filename:")
  317.                freeBuf(buf43)
  318.                if (inputString(buf43)) loadFile(buf43) >
  319. open new blank file buffer
  320. <ctl-f1:       newFile >
  321. <shftAlt-f1:   putMsg("Input filename to insert:")
  322.                freeBuf(buf43)
  323.                if (inputString(buf43)) insertFile(curFile,atCursor,buf43) >
  324. <shftCtl-f1:   if (not askYesNo("Restore file to original?"))
  325.                           returnFalse
  326.                if (getFileName(buf43,curFile))
  327.                    { freeBuf(curFile) loadFile(buf43) } >
  328.  
  329. save file currently in window
  330. <normal-f2: saveFile(curFile) >
  331. <shft-f2:   putMsg("Save file as:")
  332.             freeBuf(buf43)
  333.             if (inputString(buf43)) if (setFileName(curFile,buf43))
  334.                    saveFile(curFile) >
  335. save all changed files
  336. <alt-f2:    do(n54,0,19)
  337.                if (getFlag(buf[n54],changed)) saveFile(buf[n54]) >
  338.  
  339. <normal-f3: if (getFlag(curFile,changed))
  340.               if (askYesNo("Save changes before closing?"))
  341.                 if (not saveFile(curFile)) returnFalse
  342.             freeBuf(curFile) >
  343. save file, if changed, then close it
  344. <shft-f3:   if (getFlag(curFile,changed)) if (not saveFile(curFile))
  345.                                    returnFalse
  346.             freeBuf(curFile) >
  347. free all buffers
  348. <alt-f3:    do(n54,20,54) freeBuf(buf[n54]) >
  349.  
  350. <normal-f4: if (not askYesNo("Really quit?")) returnFalse
  351.             equateNum(n53,0)
  352.             do(n54,0,19) if (getFlag(buf[n54],changed)) equateNum(n53,1)
  353.             if (eqNum(n53,1)) if (askYesNo("Save changes?")) runKey(shft-f4)
  354.             quit >
  355. save all changed files, then quit
  356. <shft-f4:   do (n54,0,19) if (getFlag(buf[n54],changed))
  357.                                if (not saveFile(buf[n54])) returnFalse
  358.             quit >
  359. quit WITHOUT saving any files
  360. <alt-f4:    quit >
  361.  
  362. switch flag settings:
  363. <normal-f5:        flipFlag(curFile,favorite) >
  364. <shft-f5:          flipFlag(curFile,overstrike) >
  365. <alt-f5:           flipFlag(curFile,autoIndent) >
  366. <ctl-f5:           flipFlag(curFile,wordWrap) >
  367. <shftAlt-f5:       flipFlag(curFile,readOnly) >
  368. <shftCtl-f5:       flipFlag(curFile,speakMsgs) >
  369. <altCtl-f5:        flipFlag(curFile,speakAlerts) >
  370. <shftAltCtl-f5:    flipFlag(curFile,autoBackup) >
  371.  
  372. compile command in current buffer in window
  373. <normal-f6:    compile >
  374. select buffer 44 to use for writing commands
  375. <shft-f6:      editBuf(buf44)
  376.        putMsg("Type in command, <anykey: etc>, and press F6 to compile:") >
  377. save editor config to disk
  378. <alt-f6:
  379.        if (askYesNo("Save config?")) {
  380.            putMsg("Input data filename or ESC:")
  381.            freeBuf(buf54)
  382.            inputString(buf54)
  383.            saveConfig(buf54)
  384.        } >
  385. restore editor config from disk
  386. <ctl-f6:
  387.        if (askYesNo("Load config?")) {
  388.            putMsg("Input data filename or ESC:")
  389.            freeBuf(buf54)
  390.            inputString(buf54)
  391.            loadConfig(buf54)
  392.        } >
  393. edit a buffer
  394. <shftAlt-f6:   putMsg("Input number of buffer to edit:")
  395.                if (inputNum(n54)) editBuf(buf[n54]) >
  396. examine all buffers that aren't empty
  397. <shftCtl-f6:   do (n54,20,54) if (not isEmpty(buf[n54])) {
  398.                    editBuf(buf[n54])
  399.                    refreshDisplay
  400.                    putMsg("F1=continue, F2=edit this one, F3=stop:")
  401.                    getKey(n53)
  402.                    if (eqNum(n53,normal-f2)) { putMsg(" ") returnTrue }
  403.                    if (eqNum(n53,normal-f3)) goto label(1)
  404.                }
  405.                label(1)
  406.                toggle(curFile)
  407.                putMsg(" ") >
  408. swap anything, including mouse clicks, menu selections, gadgets, keys
  409. <altCtl-f6:    putMsg("Next 2 function-keys will be swapped!")
  410.                if (getKey(n53)) if (getKey(n54)) if (swapKey(n53,n54))
  411.                    { putMsg("Keys were swapped.") returnTrue }
  412.                putMsg(" ") >
  413. kill command, including mouse clicks, menu selections, gadgets, keys
  414. <shftAltCtl-f6:
  415.                putMsg("Next command-key will be deleted!")
  416.                if (getKey(n54)) if (killKey(n54))
  417.                    { putMsg("Key command was deleted.") returnTrue }
  418.                putMsg(" ") >
  419.  
  420. input search text to use, including either-or "$" and wildcards "?"
  421. <normal-f7:    freeBuf(buf49) runKey(shft-f7) >
  422. modify existing search text
  423. <shft-f7:      putMsg("Input search string:")
  424.                inputString(buf49)
  425.                runKey(normal-f9) >
  426. <alt-f7:       putMsg("Input new search wild-card char:")
  427.                freeBuf(buf49)
  428.                if (inputString(buf49))
  429.                    { moveCursor(buf49,sFile) copyChar(buf49,wildCard) } >
  430. <ctl-f7:       putMsg("Input new search either-or char:")
  431.                freeBuf(buf49)
  432.                if (inputString(buf49))
  433.                    { moveCursor(buf49,sFile) copyChar(buf49,eitherOr) } >
  434.  
  435. input replace text
  436. <normal-f8:    freeBuf(buf48) runKey(shft-f8) >
  437. modify existing replace text
  438. <shft-f8:      putMsg("input replace string:") inputString(buf48) >
  439.  
  440. NOTE: returnTrue is needed below because "thisKey" could return a False even
  441. though search() returned True.  returnFalse is needed because equateLoc()
  442. will return a True:
  443.  
  444. search forward, invert "matched" region, put cursor at start of region
  445. <normal-f9:  if (eqLoc(curFile,atCursor,eInvert)) moveCursor(curFile,sChar)
  446.              if (search(curFile,sInvert,eInvert,buf49,eChar)) {
  447.                if (thisKey) if (not onScreen(atCursor)) vScroll(atCursor)
  448.                returnTrue
  449.              }
  450.              putMsg("Search failed.")
  451.              equateLoc(curFile,sInvert,eInvert)
  452.              returnFalse >
  453. search backward
  454. <shft-f9:    if (search(curFile,sInvert,eInvert,buf49,sChar)) {
  455.                if (thisKey) if (not onScreen(atCursor)) vScroll(atCursor)
  456.                returnTrue
  457.              }
  458.              putMsg("Search failed.")
  459.              equateLoc(curFile,sInvert,eInvert)
  460.              returnFalse >
  461.  
  462. replace "matched" region, then search forward
  463. <normal-f10:   if (eqLoc(curFile,sInvert,eInvert)) returnFalse
  464.                clearRgn(curFile,invert)
  465.                insertRgn(curFile,sInvert,buf48,all)
  466.                runKey(normal-f9) >
  467. replace "matched" region, then search backward
  468. <shft-f10:     if (eqLoc(curFile,sInvert,eInvert)) returnFalse
  469.                clearRgn(curFile,invert)
  470.                insertRgn(curFile,sInvert,buf48,all)
  471.                runKey(shft-f9) >
  472. replace-all forward
  473. <alt-f10:      while(runKey(normal-f10)) nothing >
  474.  
  475. These use the Keypad Keys below - be sure and change them if you change the
  476. Keypad Keys:
  477.  
  478. <shft-bs:      runKey(normal-kp7) >    delete word left
  479. <shft-del:     runKey(normal-kp9) >    delete word right
  480. <alt-bs:       runKey(alt-kp7) >       delete line left
  481. <alt-del:      runKey(alt-kp9) >       delete line right
  482. <ctl-bs:       runKey(ctl-kp7) >       delete page left
  483. <ctl-del:      runKey(ctl-kp9) >       delete page right
  484.  
  485. ---------------------------- Keypad Keys   ----------------------------------
  486. find cursor
  487. <normal-kp5:   vScroll(atCursor) >
  488. delete word left
  489. <normal-kp7:   if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  490.                equateLoc(curFile,locB,atCursor)
  491.                moveCursor(curFile,sWord)
  492.                equateLoc(curFile,locA,atCursor)
  493.                insertRgn(buf45,sFile,curFile,loc)
  494.                clearRgn(curFile,loc) >
  495. delete word right
  496. <normal-kp9:   if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  497.                equateLoc(curFile,locA,atCursor)
  498.                moveCursor(curFile,eWord)
  499.                equateLoc(curFile,locB,atCursor)
  500.                insertRgn(buf45,eFile,curFile,loc)
  501.                clearRgn(curFile,loc) >
  502. <normal-kp8:   moveCursor(curFile,upLine) >
  503. <normal-kp2:   moveCursor(curFile,downLine) >
  504. <normal-kp4:   moveCursor(curFile,sWord) >
  505. <normal-kp6:   moveCursor(curFile,eWord) >
  506. set start of hilite at cursor
  507. <normal-kp1:   equateLoc(curFile,sHilite,atCursor) refreshDisplay >
  508. set end of hilite at cursor
  509. <normal-kp3:   equateLoc(curFile,eHilite,atCursor) refreshDisplay >
  510. UNDO scratch deletes, inserting scratch delete buffer at cursor
  511. <normal-kp0:   insertRgn(curFile,atCursor,buf45,all) >
  512. copy hilite region into buffer
  513. <normal-kpDot: if (not eqLoc(curFile,sHilite,eHilite))
  514.                    { freeBuf(buf47) insertRgn(buf47,sFile,curFile,hilite) }
  515.                else returnFalse >
  516. copy hilite region into buffer, then delete hilite region
  517. <normal-kpMinus:   if (runKey(normal-kpDot)) clearRgn(curFile,hilite) >
  518. insert copied hilite at cursor
  519. <normal-kpEnter:   insertRgn(curFile,atCursor,buf47,all)
  520.                    if (not onScreen(atCursor)) vScroll(atCursor) >
  521.  
  522. <shft-kp5:     vScroll(atCursor) >
  523. delete character left
  524. <shft-kp7:     if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  525.                equateLoc(curFile,locB,atCursor)
  526.                moveCursor(curFile,sChar)
  527.                equateLoc(curFile,locA,atCursor)
  528.                insertRgn(buf45,sFile,curFile,loc)
  529.                clearRgn(curFile,loc) >
  530. delete character under cursor
  531. <shft-kp9:     if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  532.                equateLoc(curFile,locA,atCursor)
  533.                moveCursor(curFile,eChar)
  534.                equateLoc(curFile,locB,atCursor)
  535.                insertRgn(buf45,eFile,curFile,loc)
  536.                clearRgn(curFile,loc) >
  537. <shft-kp8:     moveCursor(curFile,upLine) >
  538. <shft-kp2:     moveCursor(curFile,downLine) >
  539. <shft-kp4:     moveCursor(curFile,sChar) >
  540. <shft-kp6:     moveCursor(curFile,eChar) >
  541. <shft-kp1:     runKey(normal-kp1) >
  542. <shft-kp3:     runKey(normal-kp3) >
  543. <shft-kp0:     runKey(normal-kp0) >
  544. <shft-kpDot:   runKey(normal-kpDot) >
  545. <shft-kpMinus: runKey(normal-kpMinus) >
  546. <shft-kpEnter: runKey(normal-kpEnter) >
  547.  
  548. <alt-kp5:      vScroll(atCursor) >
  549. delete line left
  550. <alt-kp7:      if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  551.                if (is(curFile,sLine)) runKey(shft-kp7)
  552.                else {
  553.                    equateLoc(curFile,locB,atCursor)
  554.                    moveCursor(curFile,sLine)
  555.                    equateLoc(curFile,locA,atCursor)
  556.                    insertRgn(buf45,sFile,curFile,loc)
  557.                    clearRgn(curFile,loc)
  558.                } >
  559. delete line right
  560. <alt-kp9:   if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  561.             if (is(curFile,eLine)) runKey(shft-kp9)
  562.             else {
  563.                equateLoc(curFile,locA,atCursor)
  564.                moveCursor(curFile,eLine)
  565.                equateLoc(curFile,locB,atCursor)
  566.                insertRgn(buf45,eFile,curFile,loc)
  567.                clearRgn(curFile,loc)
  568.             } >
  569. <alt-kp8:   moveCursor(curFile,upLine) >
  570. <alt-kp2:   moveCursor(curFile,downLine) >
  571. <alt-kp4:   moveCursor(curFile,sLine) >
  572. <alt-kp6:   moveCursor(curFile,eLine) >
  573. <alt-kp1:   runKey(normal-kp1) >
  574. <alt-kp3:   runKey(normal-kp3) >
  575. <alt-kp0:     runKey(normal-kp0) >
  576. <alt-kpDot:   runKey(normal-kpDot) >
  577. <alt-kpMinus: runKey(normal-kpMinus) >
  578. <alt-kpEnter: runKey(normal-kpEnter) >
  579.  
  580. <ctl-kp5:      vScroll(atCursor) >
  581. delete to start of page
  582. <ctl-kp7:      if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  583.                equateLoc(curFile,locB,atCursor)
  584.                moveCursor(curFile,sPage)
  585.                equateLoc(curFile,locA,atCursor)
  586.                insertRgn(buf45,sFile,curFile,loc)
  587.                clearRgn(curFile,loc)
  588.                vScroll(atCursor) >
  589. delete to end of page
  590. <ctl-kp9:      if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  591.                equateLoc(curFile,locA,atCursor)
  592.                moveCursor(curFile,ePage)
  593.                equateLoc(curFile,locB,atCursor)
  594.                insertRgn(buf45,eFile,curFile,loc)
  595.                clearRgn(curFile,loc) >
  596. <ctl-kp8:      moveCursor(curFile,sPage) vScroll(atCursor) >
  597. <ctl-kp2:      moveCursor(curFile,ePage) vScroll(atCursor) >
  598. <ctl-kp4:      moveCursor(curFile,sLine) >
  599. <ctl-kp6:      moveCursor(curFile,eLine) >
  600. set start of invert at cursor
  601. <ctl-kp1:      equateLoc(curFile,sInvert,atCursor) refreshDisplay >
  602. set end of invert at cursor
  603. <ctl-kp3:      equateLoc(curFile,eInvert,atCursor) refreshDisplay >
  604. <ctl-kp0:      runKey(normal-kp0) >
  605. copy invert region into buffer
  606. <ctl-kpDot:    if (not eqLoc(curFile,sInvert,eInvert))
  607.                    { freeBuf(buf46) insertRgn(buf46,sFile,curFile,invert) }
  608.                else returnFalse >
  609. copy, then delete, invert region
  610. <ctl-kpMinus:  runKey(ctl-kpDot) clearRgn(curFile,invert) >
  611. insert copied invert region at cursor
  612. <ctl-kpEnter:  insertRgn(curFile,atCursor,buf46,all)
  613.                if (not onScreen(atCursor)) vScroll(atCursor) >
  614.  
  615. ------------------------- miscellaneous keys  -------------------------------
  616.  
  617. <ctl-return: putMsg("Enter new line-length:")
  618.              if (inputNum(n54)) if (gtNum(n54,0))
  619.              { setLocal(curFile,lineLength,n54) equateNum(lineLength,n54) } >
  620.  
  621. transparent tab fwd
  622. <shft-tab: while (moveCursor(curFile,eChar)) {
  623.                if (is(curFile,sLine)) returnTrue
  624.                if (is(curFile,tabColumn)) returnTrue
  625.            }
  626.            returnFalse >
  627.  
  628. transparent tab bkwd
  629. <alt-tab:  while (moveCursor(curFile,sChar)) {
  630.                if (is(curFile,sLine)) returnTrue
  631.                if (is(curFile,tabColumn)) returnTrue
  632.            }
  633.            returnFalse >
  634.  
  635. untab - delete spaces back to prev tab column
  636. <ctl-tab:   equateNum(n53,tabSpacing)
  637.             do (n54,1,n53) {
  638.                 moveCursor(curFile,sChar)
  639.                 if (is(curFile,space)) clearChar(curFile)
  640.                 else { moveCursor(curFile,eChar) returnFalse }
  641.                 if (is(curFile,tabColumn)) returnTrue
  642.             } >
  643. <shftAlt-tab:  putMsg("Converting spaces to TABs....")
  644.                spacesToTabs putMsg(" ") >
  645. <shftCtl-tab:  putMsg("Converting TABs to spaces....")
  646.                tabsToSpaces putMsg(" ") >
  647. <shftAltCtl-tab:
  648.            putMsg("Enter new tab spacing:")
  649.            if (inputNum(n54)) if (gtNum(n54,0))
  650.              { setLocal(curFile,tabSpacing,n54) equateNum(tabSpacing,n54) } >
  651.  
  652. trim spaces between next 2 words
  653. <ctl-b:  flipFlag(curFile,busies) >
  654. trim spaces between words
  655. <alt-c:  while (not is(curFile,space))
  656.            { moveCursor(curFile,eChar) if (is(curFile,eFile)) returnTrue }
  657.          moveCursor(curFile,eChar)
  658.          while (is(curFile,space)) clearChar(curFile) >
  659. input a ctl-character, such as formfeed, into text at cursor
  660. <ctl-c:  putMsg("Input a control character:") inputCtlChar >
  661. input a command and count number of times executed
  662. <shftAlt-c:    equateNum(n54,0)
  663.                putMsg("Input command to execute & count:")
  664.                if (getKey(n53)) {
  665.                    while (runKey(n53)) incNum(n54)
  666.                    freeBuf(buf54)
  667.                    insertRgn(buf54,sFile,"Times executed = ",all)
  668.                    toWord(buf54,n54)
  669.                    putMsg(buf54)
  670.                } >
  671. delay # tenths of seconds stored in n46 (see shftAlt-d)
  672. <alt-d:    delay(n46) >
  673. delete entire line
  674. <ctl-d:    if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  675.            equateLoc(curFile,locB,atCursor)
  676.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  677.            if (not eqLoc(curFile,locB,atCursor)) {
  678.                equateLoc(curFile,locA,atCursor)
  679.                insertRgn(buf45,sFile,curFile,loc)
  680.                clearRgn(curFile,loc)
  681.            } else equateLoc(curFile,locA,atCursor)
  682.            if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  683.            moveCursor(curFile,eChar)
  684.            equateLoc(curFile,locB,atCursor)
  685.            insertRgn(buf45,eFile,curFile,loc)
  686.            clearRgn(curFile,loc) >
  687.  
  688. <shftAlt-d: putMsg("Input # tenths of seconds (used in delays)")
  689.             inputNum(n46) >
  690. <alt-e:    putMsg("Input new end-of-line value (usually 10 or 13):")
  691.            inputNum(n54)
  692.            setEol(n54)
  693.            refreshDisplay >
  694. <ctl-e:
  695.        putMsg("Input file's current end-of-line value (usually 10 or 13):")
  696.            inputNum(n54)
  697.            if (not gtNum(n54,0)) returnFalse
  698.            putMsg("Input new end-of-line value (usually 10 or 13):")
  699.            inputNum(n53)
  700.            if (not gtNum(n53,0)) returnFalse
  701.            setEol(n54)
  702.            moveCursor(curFile,sFile)
  703.            putMsg("Changing eol characters ... hit Amiga-ESC to abort.")
  704.            while (moveCursor(curFile,eLine))
  705.                if (is(curFile,n54)) swapChar(curFile,n53)
  706.            setEol(n53)
  707.            vScroll(sFile)
  708.            putMsg(" ")
  709.            refreshDisplay >
  710. <alt-f:    putMsg("Input buffer # to free:")
  711.            inputNum(n54)
  712.            freeBuf(buf[n54]) >
  713. flip upper/lower case of character under cursor
  714. <ctl-f:    if (is(curFile,alpha)) {
  715.                if (is(curFile,lowerCase)) toUpper(curFile)
  716.                else toLower(curFile)
  717.            }
  718.            moveCursor(curFile,eChar) >
  719. <ctl-g:    flipFlag(curFile,markGadgets) >
  720. <alt-g:    putMsg("Enter new lines/page:")
  721.            if (inputNum(n54))
  722.            { setLocal(curFile,pageLines,n54) equateNum(pageLines,n54) } >
  723.  
  724. unhilite the hilite
  725. <alt-h:    equateLoc(curFile,sHilite,eHilite) refreshDisplay >
  726. clear hilite region - No Copy is made
  727. <ctl-h:    clearRgn(curFile,hilite) >
  728. uninvert the invert
  729. <alt-i:    equateLoc(curFile,sInvert,eInvert) refreshDisplay >
  730. clear invert region - No Copy is made
  731. <ctl-i:    clearRgn(curFile,invert) >
  732. Scan list in buf41, create index.  ((See shftAlt-buttonDown & buttonUp.))
  733. <shftAlt-i:
  734.    if (isEmpty(buf41)) returnFalse
  735.    runKey(alt-g)
  736.    freeBuf(buf54)
  737.    label(1)
  738.    moveCursor(buf41,sFile)
  739.    while (is(buf41,whiteSpace)) clearChar(buf41)
  740.    if (is(buf41,eFile)) {
  741.        swapBuf(buf54,buf41)
  742.        freeBuf(buf54)
  743.        setFileName(buf41,"Index")
  744.        equateLoc(buf41,sPage,sFile)
  745.        equateLoc(buf41,atCursor,sFile)
  746.        putMsg("Press ctl-w to see Index")
  747.        returnTrue
  748.    }
  749.    freeBuf(buf49)
  750.    insertRgn(buf49,sFile,buf41,line)
  751.    clearRgn(buf41,line)
  752.    putMsg(buf49)
  753.    moveCursor(buf54,eFile)
  754.    insertRgn(buf54,eFile,buf49,all)
  755.    insertRgn(buf54,eFile,"  ",all)
  756.    insertChar(buf54,eLine)
  757.    moveCursor(buf54,sChar)
  758.    equateNum(n53,0)
  759.    moveCursor(curFile,sFile)
  760.    label(2)
  761.    while (search(curFile,sInvert,eInvert,buf49,eChar)) {
  762.        moveCursor(curFile,sChar)
  763.        if (is(curFile,alpha)) {
  764.            label(3)
  765.            moveCursor(curFile,eInvert)
  766.            goto label(2)
  767.        }
  768.        if (is(curFile,digit)) goto label(3)
  769.        moveCursor(curFile,eInvert)
  770.        if (is(curFile,alpha)) goto label(2)
  771.        if (is(curFile,digit)) goto label(2)
  772.        locToLine(curFile,n54,atCursor)
  773.        div(n54,n54,pageLines)
  774.        incNum(n54)
  775.        if (not eqNum(n54,n53)) {
  776.            if (not eqNum(n53,0)) insertChar(buf54,",")
  777.            toWord(buf54,n54)
  778.            equateNum(n53,n54)
  779.        }
  780.    }
  781.    goto label(1)
  782. >
  783. <alt-j:    flipFlag(curFile,rightJustify) >
  784. join two lines together
  785. <ctl-j:    if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  786.            equateLoc(curFile,locA,atCursor)
  787.            label(1)
  788.            moveCursor(curFile,eChar)
  789.            if (is(curFile,space)) goto label(1)
  790.            equateLoc(curFile,locB,atCursor)
  791.            clearRgn(curFile,loc)
  792.            insertRgn(curFile,atCursor," ",all) >
  793. move hilite region to left by one space
  794. <alt-l:    moveCursor(curFile,sHilite)
  795.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  796.            label(1)
  797.            if (is(curFile,space)) clearChar(curFile)
  798.            if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  799.            moveCursor(curFile,eChar)
  800.            if (gtLoc(curFile,eHilite,atCursor)) goto label(1) >
  801. convert char under cursor to lower case
  802. <ctl-l:    toLower(curFile) moveCursor(curFile,eChar) >
  803. <ctl-m:    putMsg("Input command multiplier:") inputNum(cmdMultiplier) >
  804. rename document in window
  805. <alt-n:    putMsg("Input new filename:")
  806.            getFileName(buf43,curFile)
  807.            if (inputString(buf43))
  808.            setFileName(curFile,buf43) >
  809. go to line number in text
  810. <ctl-n:    putMsg("Input line number:")
  811.            if (inputNum(n54))
  812.                { lineToLoc(curFile,atCursor,n54) vScroll(atCursor) } >
  813. open cursor line for typing
  814. <ctl-o:    insertChar(curFile,eLine) moveCursor(curFile,sChar) >
  815. print hilite region
  816. <ctl-p:    print(curFile,hilite) >
  817. switch between printing thru parallel port and through Amiga Preferences
  818. <alt-p:    flipFlag(curFile,prefPrint) >
  819. move hilite region to right by one space
  820. <alt-r:    moveCursor(curFile,sHilite)
  821.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  822.            label(1)
  823.            if (gtLoc(curFile,eHilite,atCursor)) {
  824.                insertChar(curFile," ")
  825.                if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  826.                moveCursor(curFile,eChar)
  827.                goto label(1)
  828.            } >
  829. run whatever is stored in learn-buffer
  830. <ctl-r:    runLearn >
  831. speak the hilite region a line at a time
  832. <alt-s:    if (gtLoc(curFile,eHilite,sHilite)) {
  833.                equateLoc(curFile,locA,atCursor)
  834.                equateLoc(curFile,sInvert,sHilite)
  835.                equateLoc(curFile,atCursor,sHilite)
  836.                while (gtLoc(curFile,eHilite,sInvert)) {
  837.                    if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  838.                    moveCursor(curFile,eChar)
  839.                    if (gtLoc(curFile,atCursor,eHilite))
  840.                         equateLoc(curFile,eInvert,eHilite)
  841.                    else equateLoc(curFile,eInvert,atCursor)
  842.                    if (gtLoc(curFile,eInvert,sInvert)) {
  843.                        freeBuf(buf50)
  844.                        insertRgn(buf50,sFile,curFile,invert)
  845.                        speak(buf50)
  846.                    }
  847.                    equateLoc(curFile,sInvert,atCursor)
  848.                }
  849.                equateLoc(curFile,atCursor,locA)
  850.            } >
  851. start/abort Learn Mode
  852. <ctl-s:    if (not getFlag(curFile,learnMode)) putMsg("LEARN MODE ACTIVE!")
  853.            else putMsg("Learn Mode cancelled.")
  854.            flipFlag(curFile,learnMode) >
  855. Use keys for character/number input
  856. <alt-u: flipFlag(curFile,useKeys)>
  857. switch char under cursor to upper case
  858. <ctl-u:    toUpper(curFile) moveCursor(curFile,eChar) >
  859. switch flag that makes control-characters visible/invisible
  860. <ctl-v:    flipFlag(curFile,spooks) refreshDisplay >
  861. swap current buffer in window with buffer 41
  862. <ctl-w:    swapBuf(curFile,buf41) >
  863. for programmers:  toggle number under cursor betw hexadecimal/decimal
  864. <ctl-x:    hexDecimal(curFile) >
  865. execute AmigaDOS command but don't collect the results
  866. <ctl-y:    putMsg("Enter AmigaDOS command")
  867.            freeBuf(buf40)
  868.            inputString(buf40)
  869.            if (not isEmpty(buf40)) execute(" ",buf40) >
  870. execute AmigaDOS command and collect results
  871. <ctl-z:    putMsg("Enter AmigaDOS command")
  872.            freeBuf(buf40)
  873.            inputString(buf40)
  874.            if (isEmpty(buf40)) returnFalse
  875.            freeBuf(buf39)
  876.            if (not execute(buf39,buf40)) returnFalse
  877.            if (not isEmpty(buf39))
  878.                { putMsg("Result of AmigaDOS command:") editBuf(buf39) }
  879.                else
  880.                { putMsg("No message from AmigaDOS.") freeBuf(buf39) } >
  881. get a directory - this sets directoryname in buf38 that is used in click-
  882. loading files (see ctl-buttonDown)
  883. <alt-z:    putMsg("Enter directory: ")
  884.            freeBuf(buf38)
  885.            inputString(buf38)
  886.            freeBuf(buf54)
  887.            insertRgn(buf54,eFile,"Dir ",all)
  888.            insertRgn(buf54,eFile,buf38,all)
  889.            if (not execute(buf39,buf54)) returnFalse
  890.            moveCursor(buf38,eFile)
  891.            moveCursor(buf38,sChar)
  892.            if (not isEmpty(buf38)) if (not is(buf38,":"))
  893.                      insertRgn(buf38,eFile,"/",all)
  894.            insertRgn(buf39,sFile,"
  895. ",all)
  896.            insertRgn(buf39,sFile,buf38,all)
  897.            newFile
  898.            swapBuf(buf39,curFile)
  899.            freeBuf(buf39)
  900.            vScroll(sFile)
  901.            putMsg("To load files, ctrl-click names with mouse.")
  902.            setFileName(curFile,buf54)
  903.            flipFlag(curFile,changed) >
  904.  
  905. match columns
  906. <alt-0: equateNum(n43,n44)
  907.            runKey(alt-7)
  908.            while (gtNum(n43,n44)) {
  909.                insertChar(curFile,32)
  910.                decNum(n43)
  911.            }
  912.            while (gtNum(n44,n43)) {
  913.                moveCursor(curFile,sChar)
  914.                if (not is(curFile," ")) returnFalse
  915.                incNum(n43)
  916.                clearChar(curFile)
  917.            } >
  918. clear leading white space
  919. <alt-1:   if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  920.            while (is(curFile,whiteSpace)) {
  921.                if (is(curFile,eLine)) returnTrue
  922.                clearChar(curFile)
  923.            } >
  924. center text in line
  925. <alt-2:    runKey(alt-1)
  926.            equateNum(n54,lineLength)
  927.            do (n53,1,n54) {
  928.                if (is(curFile,eLine)) goto label(1)
  929.                incLoc(curFile,atCursor)
  930.            }
  931.            label(1)
  932.            if (gtNum(lineLength,n53)) {
  933.                if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  934.                sub(n53,lineLength,n53)
  935.                div(n53,n53,2)
  936.                do (n54,2,n53) insertChar(curFile," ")
  937.            } >
  938. go to page #
  939. <alt-3: putMsg("Go to page #:")
  940.         if (inputNum(n54)) if (gtNum(pageLines,1)) {
  941.            sub(n54,n54,1)
  942.            mul(n54,n54,pageLines)
  943.            moveCursor(curFile,sFile)
  944.            do (n53,1,n54) moveCursor(curFile,downLine)
  945.         } else putMsg("Lines/page not defined")>
  946. match indent of prev line
  947. <alt-4:    if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  948.            if (is(curFile,sFile)) returnFalse
  949.            moveCursor(curFile,sLine)
  950.            equateNum(n54,0)
  951.            while (is(curFile,space)) {
  952.                incLoc(curFile,atCursor)
  953.                incNum(n54)
  954.            }
  955.            moveCursor(curFile,downLine)
  956.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  957.            equateNum(n53,0)
  958.            while (is(curFile,space)) {
  959.                incLoc(curFile,atCursor)
  960.                incNum(n53)
  961.            }
  962.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  963.            while (gtNum(n54,n53)) {
  964.                insertChar(curFile,32)
  965.                incNum(n53)
  966.            }
  967.            while (gtNum(n53,n54)) {
  968.                clearChar(curFile)
  969.                decNum(n53)
  970.            } >
  971. justify right
  972. <alt-5:    equateLoc(curFile,locA,atCursor)
  973.            runKey(alt-6)
  974.            equateLoc(curFile,atCursor,locA)
  975.            decNum(n45)
  976.            while (gtNum(lineLength,n45)) {
  977.                insertChar(curFile,32)
  978.                incNum(n45)
  979.            }
  980.            while (gtNum(n45,lineLength)) {
  981.                moveCursor(curFile,sChar)
  982.                if (not is(curFile,32)) returnFalse
  983.                clearChar(curFile)
  984.                decNum(n45)
  985.            } >
  986. store cursor line length in n45
  987. <alt-6:    equateLoc(curFile,locA,atCursor)
  988.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  989.            do (n45,1,999999999) {
  990.                if (is(curFile,eLine)) goto label(1)
  991.                moveCursor(curFile,eChar)
  992.            }
  993.            label(1)
  994.            equateLoc(curFile,atCursor,locA) >
  995. store cursor col in n44
  996. <alt-7:    equateLoc(curFile,locA,atCursor)
  997.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  998.            do (n44,1,999999999) {
  999.                if (eqLoc(curFile,atCursor,locA)) goto label(1)
  1000.                if (is(curFile,eLine)) goto label(1)
  1001.                moveCursor(curFile,eChar)
  1002.            }
  1003.            label(1)
  1004.            equateLoc(curFile,atCursor,locA) >
  1005. Show value of n-variable
  1006. <alt-8:    putMsg("n-variable #: ")
  1007.            inputNum(n54)
  1008.            freeBuf(buf54)
  1009.            insertChar(buf54,"n")
  1010.            toWord(buf54,n54)
  1011.            insertRgn(buf54,eFile," is ",all)
  1012.            toWord(buf54,n[n54])
  1013.            putMsg(buf54) >
  1014. Set value of n-variable
  1015. <alt-9:    putMsg("Set n-variable #:")
  1016.            inputNum(n54)
  1017.            putMsg("To value:")
  1018.            inputNum(n[n54])>
  1019. tell what ASCII value is of char under cursor (use to ID ctl-chars)
  1020. <ctl-/:    copyChar(curFile,n54)
  1021.            freeBuf(buf54)
  1022.            toWord(buf54,n54)
  1023.            insertRgn(buf54,sFile,"Character value under cursor was ",all)
  1024.            putMsg(buf54)
  1025.            moveCursor(curFile,eChar) >
  1026. display file-size in message line (if slow, it packed file first)
  1027. <ctl-1:    fileSize(curFile,n54)
  1028.            freeBuf(buf54)
  1029.            insertRgn(buf54,sFile,"File size in bytes: ",all)
  1030.            toWord(buf54,n54)
  1031.            putMsg(buf54)>
  1032. <ctl-2:    flipFlag(curFile,rowCol) >
  1033. reformat paragraph
  1034. <ctl-3:    putMsg("Reformatting...")
  1035.            if (reformat) moveCursor(curFile,downLine)
  1036.            putMsg(" ")>
  1037.  
  1038. delete trailing white-space in entire document
  1039. <ctl-4:    equateLoc(curFile,locA,atCursor)
  1040.            moveCursor(curFile,sFile)
  1041.            label(1)
  1042.            if (is(curFile,eFile))
  1043.                { equateLoc(curFile,atCursor,locA) returnTrue }
  1044.            moveCursor(curFile,eLine)
  1045.            moveCursor(curFile,sChar)
  1046.            while (is(curFile,space))
  1047.                { clearChar(curFile) moveCursor(curFile,sChar) }
  1048.            moveCursor(curFile,eLine)
  1049.            goto label(1) >
  1050. save learn-sequence to disk
  1051. <ctl-5:    putMsg("Save Learn under what #?")
  1052.            if (inputNum(n54)) saveLearn(n54) >
  1053. load a learn-sequence stored on disk
  1054. <ctl-6:    putMsg("Load what Learn #?")
  1055.            if (inputNum(n54)) loadLearn(n54) >
  1056. both load & run a learn-sequence stored on disk
  1057. <ctl-7:    putMsg("Input learn # to load & run:")
  1058.            if (inputNum(n54)) if (loadLearn(n54)) runLearn >
  1059. <ctl-8:    flipFlag(curFile,searchCaps) >
  1060.  
  1061. arithmetic commands:
  1062. set running total to zer0
  1063. <ctl-0:     equateNum(n49,0)
  1064.             equateNum(n48,0)
  1065.             equateNum(n47,0) >
  1066. type running total into text at cursor
  1067. <ctl-\:     freeBuf(buf54)
  1068.             if (eqNum(n47,1)) insertChar(buf54,"-")
  1069.             toWord(buf54,n49)
  1070.             insertChar(buf54,".")
  1071.             if (gtNum(10,n48)) insertChar(buf54,"0")
  1072.             toWord(buf54,n48)
  1073.             insertRgn(curFile,atCursor,buf54,all)
  1074.             insertRgn(buf54,sFile,"Inserted total into text ",all)
  1075.             putMsg(buf54) >
  1076. add next word (if a number) to running total & display total
  1077. <ctl-=:     moveCursor(curFile,eWord)
  1078.             moveCursor(curFile,sWord)
  1079.             toNumber(n54,curFile)
  1080.             moveCursor(curFile,eWord)
  1081.             equateNum(n53,0)
  1082.             if (is(curFile,".")) {
  1083.                moveCursor(curFile,eChar)
  1084.                toNumber(n53,curFile)
  1085.                moveCursor(curFile,eWord)
  1086.             }
  1087.             mul(n49,n49,100)
  1088.             add(n49,n49,n48)
  1089.             mul(n54,n54,100)
  1090.             add(n54,n54,n53)
  1091.             if (eqNum(n47,1))  {
  1092.                if (gtNum(n54,n49)) { equateNum(n47,0) sub(n49,n54,n49) }
  1093.                else sub(n49,n49,n54)
  1094.             } else add(n49,n49,n54)
  1095.             mod(n48,n49,100)
  1096.             div(n49,n49,100)
  1097.             freeBuf(buf54)
  1098.             if (eqNum(n47,1)) insertChar(buf54,"-")
  1099.             toWord(buf54,n49)
  1100.             insertChar(buf54,".")
  1101.             if (gtNum(10,n48)) insertChar(buf54,"0")
  1102.             toWord(buf54,n48)
  1103.             insertRgn(buf54,sFile,"Running total is ",all)
  1104.             putMsg(buf54) >
  1105. subtract next word (if a number) from running total & display total
  1106. <ctl--:     moveCursor(curFile,eWord)
  1107.             moveCursor(curFile,sWord)
  1108.             toNumber(n54,curFile)
  1109.             moveCursor(curFile,eWord)
  1110.             equateNum(n53,0)
  1111.             if (is(curFile,".")) {
  1112.                moveCursor(curFile,eChar)
  1113.                toNumber(n53,curFile)
  1114.                moveCursor(curFile,eWord)
  1115.             }
  1116.             mul(n49,n49,100)
  1117.             add(n49,n49,n48)
  1118.             mul(n54,n54,100)
  1119.             add(n54,n54,n53)
  1120.             if (eqNum(n47,0))  {
  1121.                if (gtNum(n54,n49)) { equateNum(n47,1) sub(n49,n54,n49) }
  1122.                else sub(n49,n49,n54)
  1123.             } else add(n49,n49,n54)
  1124.             mod(n48,n49,100)
  1125.             div(n49,n49,100)
  1126.             freeBuf(buf54)
  1127.             if (eqNum(n47,1)) insertChar(buf54,"-")
  1128.             toWord(buf54,n49)
  1129.             insertChar(buf54,".")
  1130.             if (gtNum(10,n48)) insertChar(buf54,"0")
  1131.             toWord(buf54,n48)
  1132.             insertRgn(buf54,sFile,"Running total is ",all)
  1133.             putMsg(buf54) >
  1134.  
  1135. -------------------------- end of Config! ----------------------------------
  1136.  
  1137. Erase these commands after you are through with them.  That'll reduce the
  1138. size of the data file.
  1139.  
  1140. Do NOT take these out of the Config! that is in Uedit.arc!
  1141.  
  1142. Distribute ONLY the original Uedit.arc file!
  1143.  
  1144. When you erase this, be sure to delete the "About..." menu item above.
  1145.  
  1146. <shftAltCtl-a:
  1147.    freeBuf(buf54)
  1148.    editBuf(buf54)
  1149.    setFileName(buf54,"               About Uedit...")
  1150.    putMsg(" ")
  1151.    insertRgn(buf54,sFile,
  1152. "
  1153.                                 Uedit V1.8
  1154.                     Copyright (C) 1986-87, Rick Stiles
  1155.  
  1156. Uedit V1.8 is a ShareWare program.  Copy and distribute Uedit.arc to friends
  1157. and bulletin boards.  
  1158.  
  1159. Distribute only the original Uedit.arc.
  1160.  
  1161.  
  1162. Uedit must not be used for commercial purposes without my permission.
  1163.  
  1164.  
  1165. If you find Uedit useful, send $25 cash, check or money order to:
  1166.  
  1167. Rick Stiles
  1168. 2420 Summit Springs Drive
  1169. Atlanta, GA 30338
  1170.  
  1171. You will receive the Manual (over 100 pages) which has full doc, examples,
  1172. and editing tricks.
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. ",all)
  1179.    moveCursor(buf54,sFile)
  1180.    equateNum(n54,30)
  1181.    while (decNum(n54)) moveCursor(buf54,eWord)
  1182.    equateLoc(buf54,eInvert,atCursor)
  1183.    moveCursor(buf54,sWord)
  1184.    equateLoc(buf54,sInvert,atCursor)
  1185.    equateNum(n54,6)
  1186.    while (decNum(n54)) moveCursor(buf54,eLine)
  1187.    equateLoc(buf54,sHilite,atCursor)
  1188.    moveCursor(buf54,eFile)
  1189.    equateLoc(buf54,eHilite,atCursor)
  1190.    editBuf(buf54)
  1191.    getKey(n54)
  1192.    freeBuf(buf54)
  1193. >
  1194.  
  1195. Erase this when you no longer want to run the demo.  Or just erase the left
  1196. angle-bracket.  
  1197.  
  1198. <shftAltCtl-d: if (loadFile("demo")) { compile runKey(shftAlt-1) } >
  1199.  
  1200.